﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Alumno;
using SanFranciscoModel.Curso;
using SanFranciscoModel.Materia;
using SanFranciscoModel.Nota;
using SanFranciscoModel.Intermedias;

namespace SanFrancisco
{
    public partial class ModificarNotaAlumno : Form
    {
        int _DNI;
        List<AlumnoXMateriaXNota> _AlumnoXMateriaXNotaList;
        AlumnoXMateriaXNota _AlumnoXMateriaXNota = new AlumnoXMateriaXNota();
        Curso _Curso;

        public ModificarNotaAlumno(int dni)
        {
            _DNI = dni;
            InitializeComponent();
        }

        private void CargarNotaAlumno_Load(object sender, EventArgs e)
        {
            txtDni.Text = _DNI.ToString();
            Alumno Alumno = new Alumno();
            AlumnoManager AlumnoManager = new AlumnoManager();
            CursoManager CursoManager = new SanFranciscoModel.Curso.CursoManager();
            

            Alumno = AlumnoManager.getAlumnobyDNI(_DNI);
            txtNombre.Text = Alumno.Nombre;
            txtApellido.Text = Alumno.Apellido;

            _Curso = CursoManager.getCursoActualbyDNI(_DNI);
            txtCurso.Text = _Curso.NombreCurso;


            _AlumnoXMateriaXNotaList = AlumnoManager.getAlumnoXMateriaXNotaAllbyDNIAlumno(_DNI);
            

            CargarNotas();
            CargarMaterias();

        }

        private void CargarNotas()
        {
            int i;
            for (i = 1; i < 11; i++)
            {
                cmbNota.Items.Add(i.ToString());
            }
        }

        private void CargarTipoNotas()
        {
            TipoNotaManager TipoNotaManager = new TipoNotaManager();
            cmbTipoNota.DataSource = TipoNotaManager.getTipoNotaAll();
            cmbTipoNota.DisplayMember = "TipoNota1";
            cmbTipoNota.ValueMember = "idTipoNota";
        }

        private void CargarMaterias()
        {
            MateriaManager MateriaManager = new SanFranciscoModel.Materia.MateriaManager();
            List<Materia> MateriaList = new List<Materia>();

            foreach (AlumnoXMateriaXNota mat in _AlumnoXMateriaXNotaList)
            {
                    MateriaList.Add(MateriaManager.getMateriasByIdMateria(mat.idMateria));
            }


            
            cmbMaterias.DisplayMember = "Materia1";
            cmbMaterias.ValueMember = "idMateria";
            cmbMaterias.DataSource = MateriaList;

            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            AlumnoXMateriaXNota amn = new AlumnoXMateriaXNota();
            AlumnoManager AlumnoManager = new AlumnoManager();

            TipoNotaManager TipoNotaManager = new TipoNotaManager();
            List<TipoNota> TipoNotaList = TipoNotaManager.getTipoNotaAll();

            amn.DNIAlumno = _DNI;
            amn.IdCurso = _Curso.idCurso;
            amn.idMateria = (int)cmbMaterias.SelectedValue;
            //amn.Nota = int.Parse(cmbNota.Text);

            foreach(TipoNota tp in TipoNotaList)
            {
                if (tp.TipoNota1.Equals(cmbTipoNota.Text))
                    amn.TipoNota = tp.idTipoNota;

            }

            AlumnoManager.modificarAlumnoXMateriaXNota(amn);

            MessageBox.Show("La nota fue modificada con exito");
            this.Close();
        }

        private void cmbMaterias_SelectedIndexChanged(object sender, EventArgs e)
        {
            TipoNotaManager TipoNotaManager = new TipoNotaManager();
            List<TipoNota> TipoNotaList = new List<TipoNota>();

            foreach(AlumnoXMateriaXNota almxn in _AlumnoXMateriaXNotaList)
            {
                int a = ((int)cmbMaterias.SelectedValue);
                if (almxn.idMateria == a)
                TipoNotaList.Add(TipoNotaManager.getTipoNotaById(almxn.TipoNota));
            }

            cmbTipoNota.DataSource = TipoNotaList;
            cmbTipoNota.DisplayMember = "TipoNota1";
            cmbTipoNota.ValueMember = "idTipoNota";
        }

        private void cmbTipoNota_SelectedIndexChanged(object sender, EventArgs e)
        {
            int a = ((int)cmbMaterias.SelectedValue);

            foreach (AlumnoXMateriaXNota almxn in _AlumnoXMateriaXNotaList)
            {
                
                if (almxn.idMateria == a )
                    {
                    if((almxn.TipoNota).ToString().Equals(cmbTipoNota.SelectedValue.ToString()))
                        {
                            //cmbNota.Text = almxn.Nota.ToString();
                        }
                    }
            }
        }


    }
}
